package com.edt.ichannel.api.controller;

import cc.edt.iceutils2.string.IceStringUtils;

import com.edt.ichannel.api.common.controller.BaseController;
import com.edt.ichannel.api.common.entity.ActionResult;
import com.edt.ichannel.api.entiy.local.SendMessage;
import com.edt.ichannel.api.service.SendTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

/**
 * 发送短信接口
 *
 * @author 宋寒
 * 2018/7/10 14:07
 */
@Slf4j
@Controller
@RequestMapping("/sms")
public class SendMessageController extends BaseController {
    @Resource
    private SendTemplateService sendTemplateService;


    /**
     * 发送短信接口
     * 帐号（网关通道管理的用户名及密码）、密码（MD5）、发送号码、短信内容
     * 大体接口流程：
     * 1.验证入参判断用户名密码
     * 2.验证手机号所属运营商    移动号码验证 网关状态  若网关关闭 返回信息
     * 3.验证短信模板  若通过   电信、联通 走能力平台接口 直接发送  记录插入到下行 发送记录表 。
     * 移动  把对应信息 插入到待发送 表中    不通过  返回信息
     * 流程结束
     *
     * @param json json字符串
     * @author 宋寒
     * 2018/7/10 14:12
     */
    @RequestMapping(value = "sendMessages", method = RequestMethod.POST)
    @ResponseBody
    public void sendMessages(@RequestBody String json) {
        ActionResult actionResult = new ActionResult();
        log.info("短信传入参数:" + json);
        if (IceStringUtils.isBlank(json)) {
            actionResult.setSuccess(false);
            actionResult.setMessage("传入的参数有空值");
        } else {

            SendMessage sendMessage = sendTemplateService.checkParam(json);
            if (IceStringUtils.isNoneBlank(sendMessage.getLoginName(), sendMessage.getLoginPassword(), sendMessage.getContents(), sendMessage.getPhone())) {
                actionResult = sendTemplateService.sendMessages(sendMessage.getLoginName(), sendMessage.getLoginPassword(), sendMessage.getPhone(), sendMessage.getContents());
            } else {
                actionResult.setSuccess(false);
                actionResult.setMessage("传入的参数有空值");
            }
        }
        WriterToPageByJson(actionResult);
    }


}
